#include <57header.h>
#include <mysql/mysql.h>

int main(int argc,char*argv[])
{
    MYSQL *conn;
    MYSQL_RES *result;
    MYSQL_ROW row;

    // 初始化数据库链接
    conn = mysql_init(NULL);

    // 和数据库服务建立链接:  携带ip,端口 -> 找到mysql服务器;  账号,密码-> 让mysql服务器验证是否可以登录
    mysql_real_connect(conn, "localhost", "root", "zs123456", "cpp57", 0, NULL, 0);

  	mysql_set_character_set(conn, "utf8mb4");
    
    // 上面链接已经建立完毕
    // 发送sql语句
    mysql_query(conn, "SELECT * FROM student");

    // 获取查询的结果: 这个查询结果是一个以行数据为单位的线性表
    result = mysql_store_result(conn);

    // 以后判断一个查询语句: select 语句, 有没有从数据库中查询出结果: 用如下获得行数判断
    my_ulonglong num = mysql_num_rows(result);
    printf("rows: %lld \n", num);

    // 获取第一行数据: row1: 是一个字符串的指针数组
    MYSQL_ROW row1 = mysql_fetch_row(result);
    row1 = mysql_fetch_row(result);
    row1 = mysql_fetch_row(result);

    // 获得上述数组的长度
    unsigned int row_num = mysql_num_fields(result);
    printf("row_num: %d \n", row_num);

    char *id = row1[0];
    char *stu_name = row1[1];
    printf("%s \n", id);
    printf("%s \n", stu_name);
    printf("%s \n", row1[5]);


    // 打印查询获得的返回信息
    //while ((row = mysql_fetch_row(result))) {
    //    for(int i=0; i<mysql_num_fields(result); i++){
    //        printf("%s \t", row[i]);
    //    }
    //    printf(" \n");
    //}

    // 释放查询出的数据资源
    mysql_free_result(result);

    // 关闭链接
    mysql_close(conn);

    return 0;
}
